<?php
/* Esta clase se utliza para manejar a los usuarios del sistema.
 * Fecha ultima modificación: 02-10-2013.
 */

include_once "../controlador_bd/CConexion.php";

class CUsuario {
	//Miembros privados.
	private $nombreUsuario;
	private $contrasena;
	private $nombre;
	private $apellido;
	private $cargo;
	private $activo;

	//Esta funcion obtiene el listado de TODOS los usuarios guardados en la base, es privada porque auxilia a otras funciones.
	public function listadoUsuarios() {
		$objConex = new CConexion;
		$objConex -> conectar();
		$resultado = pg_query("SELECT * FROM usuario ORDER BY nombre_usuario");
		$objConex -> desconectar();
		return pg_fetch_all($resultado);
	}
	
	public function listadoActivos() {
		$objConex = new CConexion;
		$objConex -> conectar();
		$resultado = pg_query("SELECT * FROM usuario WHERE usactivo = true ORDER BY nombre_usuario" );
		$objConex -> desconectar();
		return pg_fetch_all($resultado);
	}

	//Miembros publicos.
	public function setNombreUsuario($nUsuario) {
		$this -> nombreUsuario = $nUsuario;
	}

	public function setContrasena($contrasena) {
		$this -> contrasena = $contrasena;
	}

	public function setNombre($nombre) {
		$this -> nombre = $nombre;
	}

	public function setApellido($apellido) {
		$this -> apellido = $apellido;
	}

	public function setCargo($cargo) {
		$this -> cargo = $cargo;
	}

	public function setActivo($activo) {
		$this -> activo = $activo;
	}

	public function getCargo() {
		return $this -> cargo;
	}
	
	public function getNombreUsuario() {
		return $this -> nombreUsuario;
	}
	
	public function getNombre() {
		return $this -> nombre;
	}
	
	public function getApellido() {
		return $this -> apellido;
	}

	public function guardar($flag) {
		$objConex = new CConexion;
		$objConex -> conectar();
		pg_query("SELECT ingresar_usuario( ".$flag.", '" . $this -> nombreUsuario . "','" . $this -> contrasena . "','" . $this -> nombre . "','" . $this -> apellido . "','" . $this -> cargo . "','" . $this -> activo . "')");
		$objConex -> desconectar();
	}

	// public function guardarCambios() {
		// $objConex = new CConexion;
		// $objConex -> conectar();
		// pg_query("UPDATE usuario SET nombre = '" . $this -> nombre . "', apellido = '" . $this -> apellido  . "', usactivo = '" . $this -> activo . "', cargo = '" . $this -> cargo . "' WHERE nombre_usuario = '" . $this -> nombreUsuario . "';");
		// $objConex -> desconectar();
	// }

	public function logeo($nomUsuario, $contrasena) {
		//Se comparara la contraseña encriptada.
		$contrasena = md5($contrasena);
		$usuariosActuales = $this -> listadoUsuarios();
		for ($i = 0; $i < sizeof($usuariosActuales); $i++) {
			if ($usuariosActuales[$i]['nombre_usuario'] == $nomUsuario && $usuariosActuales[$i]['contrasena'] == $contrasena && $usuariosActuales[$i]['usactivo'] == 't') {
				$this -> nombreUsuario = $usuariosActuales[$i]['nombre_usuario'];
				$this -> contrasena = $usuariosActuales[$i]['contrasena'];
				$this -> nombre = $usuariosActuales[$i]['nombre'];
				$this -> apellido = $usuariosActuales[$i]['apellido'];
				$this -> cargo = $usuariosActuales[$i]['cargo'];
				$this -> activo = $usuariosActuales[$i]['usactivo'];
				return TRUE;
			}
		}
		return FALSE;
	}

}
?>